import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  // 相当于组件的data， 专门用来存放全局数据
  //在store中定义数据 在组件中直接使用
  state: {
      num:0
  },
  // getters相当于组件的computed, getters是全局的，computed是组件内部使用
  // 将组件中使用的computed都放到getters里面来操作
  getters:{
    //默认参数 两种写法
    // getNum(){
    //   return this.$store.state.num
    // }
     getNum(state){
      return state.num
    }
  },
  // mutations相当于组件的methods,但是他不能使用异步方法 （比如定时器 ，axios）
  mutations: {
    // 让num累加1
    //payload是一个形参 如果组件在commit时，有传过来这个参数，就存在 如果没有传过来，就是undefined
    increase(state, payload){
      state.num += payload ? payload:1;
    }
  },
  actions: {
  },
  modules: {
  }
})
